/**
 * 基于卖座网接口封装的 网络请求
 * @param {*} code 卖座网 请求头中 X-host 的值
 * @param {*} params 请求参数
 * @param {*} headers 请求头
 */
function http(code, params, headers) {
  return new Promise((resolve, reject) => {
    // 获取 Token
    const token = wx.getStorageSync("token");
    // 定义默认 header
    const header = {
      ...headers,
      "X-Host": code,
    };
    // 根据 token 是否存在，追加 token
    if (token) {
      header.token = token;
    }

    wx.request({
      url: "https://m.maizuo.com/gateway",
      data: params,
      header,
      // 成功的回调
      //    res 是一个包装对象，其中 data 字段才是接口真实的返回值
      success: (res) => {
        //   获取接口返回值
        const result = res.data;
        // 判断业务状态码
        if (result.status !== 0) {
          wx.showToast({ title: result.msg, icon: "none" });
          reject(result);
          return;
        }

        resolve(result.data);
      },
      // 失败的回调
      fail: (res) => {
        reject(res);
      },
    });
  });
}

export default http;
